using System;
using System.Collections;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace SHDocVw
{
	[DefaultMember("Item"), ClassInterface(0), ComSourceInterfaces("SHDocVw.DShellWindowsEvents\0"), Guid("9BA05972-F6A8-11CF-A442-00A0C90A8F39"), TypeLibType(2)]
	[ComImport]
	public class ShellWindowsClass : IShellWindows, ShellWindows, DShellWindowsEvents_Event, IEnumerable
	{
		public virtual extern event DShellWindowsEvents_WindowRegisteredEventHandler WindowRegistered
		{
			[MethodImpl(MethodImplOptions.InternalCall)]
			add;
			[MethodImpl(MethodImplOptions.InternalCall)]
			remove;
		}
		public virtual extern event DShellWindowsEvents_WindowRevokedEventHandler WindowRevoked
		{
			[MethodImpl(MethodImplOptions.InternalCall)]
			add;
			[MethodImpl(MethodImplOptions.InternalCall)]
			remove;
		}
		[DispId(1610743808)]
		public virtual extern int Count
		{
			[DispId(1610743808)]
			[MethodImpl(MethodImplOptions.InternalCall)]
			get;
		}
		[MethodImpl(MethodImplOptions.InternalCall)]
		public extern ShellWindowsClass();
		[DispId(0)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		[return: MarshalAs(UnmanagedType.IDispatch)]
		public virtual extern object Item([MarshalAs(UnmanagedType.Struct)] [In] object index = null);
		[DispId(-4)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		[return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "System.Runtime.InteropServices.CustomMarshalers.EnumeratorToEnumVariantMarshaler")]
		public virtual extern IEnumerator GetEnumerator();
		[DispId(1610743811), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		public virtual extern void Register([MarshalAs(UnmanagedType.IDispatch)] [In] object pid, [In] int HWND, [In] int swClass, out int plCookie);
		[DispId(1610743812), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		public virtual extern void RegisterPending([In] int lThreadId, [MarshalAs(UnmanagedType.Struct)] [In] ref object pvarloc, [MarshalAs(UnmanagedType.Struct)] [In] ref object pvarlocRoot, [In] int swClass, out int plCookie);
		[DispId(1610743813), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		public virtual extern void Revoke([In] int lCookie);
		[DispId(1610743814), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		public virtual extern void OnNavigate([In] int lCookie, [MarshalAs(UnmanagedType.Struct)] [In] ref object pvarloc);
		[DispId(1610743815), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		public virtual extern void OnActivated([In] int lCookie, [In] bool fActive);
		[DispId(1610743816), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		[return: MarshalAs(UnmanagedType.IDispatch)]
		public virtual extern object FindWindowSW([MarshalAs(UnmanagedType.Struct)] [In] ref object pvarloc, [MarshalAs(UnmanagedType.Struct)] [In] ref object pvarlocRoot, [In] int swClass, out int pHWND, [In] int swfwOptions);
		[DispId(1610743817), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		public virtual extern void OnCreated([In] int lCookie, [MarshalAs(UnmanagedType.IUnknown)] [In] object punk);
		[DispId(1610743818), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		public virtual extern void ProcessAttachDetach([In] bool fAttach);
	}
}
